در این جلسه با ساختار فایلهای باینری در لینوکس آشنا میشویم و تفاوتهای بین خانواده دبیان و خانواده رد هت را بررسی میکنیم.
باینری یا فایل اجرایی، فایلی است که مستقیماً توسط CPU و سیستمعامل قابل اجرا است. این فایلها از کد منبع (Source Code) با استفاده از کامپایلر (Compiler) تولید میشوند و شامل دستورات ماشین هستند.
فایلهای باینری در لینوکس معمولاً از چند بخش اصلی تشکیل شدهاند:
برای مشاهده اطلاعات یک فایل باینری از دستور file استفاده کنید:
توضیح: این خروجی نشان میدهد که ls یک فایل ELF
(Executable and Linkable Format) با معماری ۶۴ بیت و به صورت داینامیک لینک است.
.debar شامل سه فایل: debian-binary، control.tar.gz، data.tar.gzapt / dpkg/usr/bin/ یا /usr/local/bin/.so (Shared Objects) در /usr/lib/.rpmcpiodnf / yum/usr/bin/ یا /usr/local/bin/.so (Shared Objects) در /usr/lib64/| ویژگی | دبیان (Debian) | رد هت (Red Hat) |
|---|---|---|
| فرمت بسته | .deb |
.rpm |
| ابزار نصب | dpkg |
rpm |
| مدیر بسته سطح بالا | apt |
dnf / yum |
| ساختار بسته | آرشیو ar با فایلهای tar.gz |
آرشیو cpio با هدر و امضا |
| مسیر کتابخانهها | /usr/lib/ |
/usr/lib64/ (برای ۶۴ بیت) |
| فایل کانفیگ | /etc/apt/sources.list |
/etc/yum.repos.d/ |
نوع فایل و اطلاعات اولیه را نمایش میدهد.
وابستگیهای کتابخانهای (Shared Libraries) یک فایل باینری را نمایش میدهد.
توضیح: این خروجی نشان میدهد که tmux به کدام کتابخانهها نیاز دارد.
اطلاعات دقیقتری از ساختار فایل ارائه میدهد.
.deb استفاده میکند که یک آرشیو ar با سه فایل استاندارد است..rpm استفاده میکند که شامل هدر، امضا و آرشیو cpio است.apt (دبیان) در مقابل dnf (رد هت)./usr/lib/x86_64-linux-gnu/، در رد هت /usr/lib64/.file نوع چند فایل باینری مثل /bin/bash و /usr/bin/python3 را بررسی کنید.ldd وابستگیهای کتابخانهای یک برنامه را مشاهده کنید.dpkg -L در دبیان، لیست فایلهای یک بسته را ببینید.rpm -ql در رد هت، لیست فایلهای یک بسته را ببینید.